// Copyright (c) 2016, SolidCP
// SolidCP is distributed under the Creative Commons Share-alike license
// 
// SolidCP is a fork of WebsitePanel:
// Copyright (c) 2015, Outercurve Foundation.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// - Redistributions of source code must  retain  the  above copyright notice, this
//   list of conditions and the following disclaimer.
//
// - Redistributions in binary form  must  reproduce the  above  copyright  notice,
//   this list of conditions  and  the  following  disclaimer in  the documentation
//   and/or other materials provided with the distribution.
//
// - Neither  the  name  of  the  Outercurve Foundation  nor   the   names  of  its
//   contributors may be used to endorse or  promote  products  derived  from  this
//   software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,  BUT  NOT  LIMITED TO, THE IMPLIED
// WARRANTIES  OF  MERCHANTABILITY   AND  FITNESS  FOR  A  PARTICULAR  PURPOSE  ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL,  SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO,  PROCUREMENT  OF  SUBSTITUTE  GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)  HOWEVER  CAUSED AND ON
// ANY  THEORY  OF  LIABILITY,  WHETHER  IN  CONTRACT,  STRICT  LIABILITY,  OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE)  ARISING  IN  ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.42
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

// 
// This source code was auto-generated by wsdl, Version=2.0.50727.42.
// 
namespace SolidCP.EnterpriseServer
{
	using System.Diagnostics;
	using System.Web.Services;
	using System.ComponentModel;
	using System.Web.Services.Protocols;
	using System;
	using System.Xml.Serialization;
	using SolidCP.Providers;

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[System.Web.Services.WebServiceBindingAttribute(Name = "esImportSoap", Namespace = "http://smbsaas/solidcp/enterpriseserver")]
	public partial class esImport : Microsoft.Web.Services3.WebServicesClientProtocol
	{

		private System.Threading.SendOrPostCallback GetImportableItemTypesOperationCompleted;

		private System.Threading.SendOrPostCallback GetImportableItemsOperationCompleted;

		private System.Threading.SendOrPostCallback ImportItemsOperationCompleted;

		/// <remarks/>
		public esImport()
		{
			this.Url = "http://localhost/EnterpriseServer/esImport.asmx";
		}

		/// <remarks/>
		public event GetImportableItemTypesCompletedEventHandler GetImportableItemTypesCompleted;

		/// <remarks/>
		public event GetImportableItemsCompletedEventHandler GetImportableItemsCompleted;

		/// <remarks/>
		public event ImportItemsCompletedEventHandler ImportItemsCompleted;

		/// <remarks/>
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/GetImportableItemTypes", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public ServiceProviderItemType[] GetImportableItemTypes(int packageId)
		{
			object[] results = this.Invoke("GetImportableItemTypes", new object[] {
                        packageId});
			return ((ServiceProviderItemType[])(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetImportableItemTypes(int packageId, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetImportableItemTypes", new object[] {
                        packageId}, callback, asyncState);
		}

		/// <remarks/>
		public ServiceProviderItemType[] EndGetImportableItemTypes(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((ServiceProviderItemType[])(results[0]));
		}

		/// <remarks/>
		public void GetImportableItemTypesAsync(int packageId)
		{
			this.GetImportableItemTypesAsync(packageId, null);
		}

		/// <remarks/>
		public void GetImportableItemTypesAsync(int packageId, object userState)
		{
			if ((this.GetImportableItemTypesOperationCompleted == null))
			{
				this.GetImportableItemTypesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetImportableItemTypesOperationCompleted);
			}
			this.InvokeAsync("GetImportableItemTypes", new object[] {
                        packageId}, this.GetImportableItemTypesOperationCompleted, userState);
		}

		private void OnGetImportableItemTypesOperationCompleted(object arg)
		{
			if ((this.GetImportableItemTypesCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetImportableItemTypesCompleted(this, new GetImportableItemTypesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/GetImportableItems", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public string[] GetImportableItems(int packageId, int itemTypeId)
		{
			object[] results = this.Invoke("GetImportableItems", new object[] {
                        packageId,
                        itemTypeId});
			return ((string[])(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetImportableItems(int packageId, int itemTypeId, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetImportableItems", new object[] {
                        packageId,
                        itemTypeId}, callback, asyncState);
		}

		/// <remarks/>
		public string[] EndGetImportableItems(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((string[])(results[0]));
		}

		/// <remarks/>
		public void GetImportableItemsAsync(int packageId, int itemTypeId)
		{
			this.GetImportableItemsAsync(packageId, itemTypeId, null);
		}

		/// <remarks/>
		public void GetImportableItemsAsync(int packageId, int itemTypeId, object userState)
		{
			if ((this.GetImportableItemsOperationCompleted == null))
			{
				this.GetImportableItemsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetImportableItemsOperationCompleted);
			}
			this.InvokeAsync("GetImportableItems", new object[] {
                        packageId,
                        itemTypeId}, this.GetImportableItemsOperationCompleted, userState);
		}

		private void OnGetImportableItemsOperationCompleted(object arg)
		{
			if ((this.GetImportableItemsCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetImportableItemsCompleted(this, new GetImportableItemsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/ImportItems", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public int ImportItems(bool async, string taskId, int packageId, string[] items)
		{
			object[] results = this.Invoke("ImportItems", new object[] {
                        async,
                        taskId,
                        packageId,
                        items});
			return ((int)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginImportItems(bool async, string taskId, int packageId, string[] items, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("ImportItems", new object[] {
                        async,
                        taskId,
                        packageId,
                        items}, callback, asyncState);
		}

		/// <remarks/>
		public int EndImportItems(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((int)(results[0]));
		}

		/// <remarks/>
		public void ImportItemsAsync(bool async, string taskId, int packageId, string[] items)
		{
			this.ImportItemsAsync(async, taskId, packageId, items, null);
		}

		/// <remarks/>
		public void ImportItemsAsync(bool async, string taskId, int packageId, string[] items, object userState)
		{
			if ((this.ImportItemsOperationCompleted == null))
			{
				this.ImportItemsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnImportItemsOperationCompleted);
			}
			this.InvokeAsync("ImportItems", new object[] {
                        async,
                        taskId,
                        packageId,
                        items}, this.ImportItemsOperationCompleted, userState);
		}

		private void OnImportItemsOperationCompleted(object arg)
		{
			if ((this.ImportItemsCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.ImportItemsCompleted(this, new ImportItemsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		public new void CancelAsync(object userState)
		{
			base.CancelAsync(userState);
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetImportableItemTypesCompletedEventHandler(object sender, GetImportableItemTypesCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetImportableItemTypesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetImportableItemTypesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
			:
				base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public ServiceProviderItemType[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((ServiceProviderItemType[])(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetImportableItemsCompletedEventHandler(object sender, GetImportableItemsCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetImportableItemsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetImportableItemsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
			:
				base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public string[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((string[])(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void ImportItemsCompletedEventHandler(object sender, ImportItemsCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class ImportItemsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal ImportItemsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
			:
				base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public int Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((int)(this.results[0]));
			}
		}
	}
}
